package com.demo.sys.service.serviceImpl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.demo.sys.dao.mapper.SysMenuMapper;
import com.demo.sys.entity.SysMenuEntity;
import com.demo.sys.entity.resp.ResponseMenuListEntity;
import com.demo.sys.service.SysMenuService;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 菜单表 服务实现类
 * </p>
 *
 * @author zwy
 * @since 2023-08-10
 */
@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenuEntity> implements SysMenuService {

    @Override
    public List<String> getPermsList(String type) {
        return baseMapper.getPermsList(type);
    }

    @Override
    public List<ResponseMenuListEntity> getAdminMenuList(String type) {
        //获取到所有的菜单
        List<ResponseMenuListEntity> list = baseMapper.getAdminMenuList(type);
        ArrayList<ResponseMenuListEntity> menuList = new ArrayList<>(16);
        if (list != null && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                //保存子菜单列表
                ArrayList<ResponseMenuListEntity> list2 = new ArrayList<>(16);
                for (int j = 0; j < list.size(); j++) {
                    if (list.get(i).getId().equals(list.get(j).getParentId())) {
                        list2.add(list.get(j));
                    }
                    list.get(i).setList(list2);
                }
                //如果是0，默认父菜单
                if ("0".equals(list.get(i).getParentId())) {
                    menuList.add(list.get(i));
                }
            }
        }
        return menuList;
    }




//    /**
//     * 系统菜单列表-查询 2级菜单
//     *
//     * @return
//     */
//    @Override
//    public List<ResponsTreeMenuListEntity> getTreeMenuList() {
//        //获取到菜单列表
//        List<ResponsTreeMenuListEntity> treeMenuListEntities = baseMapper.getTreeMenuList();
//        if (treeMenuListEntities != null && treeMenuListEntities.size() > 0) {
//            //判断是否为父级/目录
//            for (ResponsTreeMenuListEntity treeMenuListEntity : treeMenuListEntities) {
//                if ("0".equals(treeMenuListEntity.getParentId())) {
//                    treeMenuListEntity.setParent(true);
//                } else {
//                    treeMenuListEntity.setParent(!"2".equals(treeMenuListEntity.getType()));
//                }
//            }
//        }
//        return treeMenuListEntities;
//    }
}
